package jcl.hash.LeetCode;
//387. 字符串中的第一个唯一字符
//给定一个字符串 s ，找到 它的第一个不重复的字符，并返回它的索引 。如果不存在，则返回 -1 。


public class Num387_firstUniqChar {
    public int firstUniqChar(String s) {
        int[] freq = new int[26];
        //遍历字符串，取除每一个字符，把出现的次数加上对应的数组内部
        for (int i = 0; i < s.length(); i++) {
              char ch = s.charAt(i);
              freq[ch - 'a'] ++;//把字符对应的数组次数 + 1
        }//遍历完后这个数组就报错了这个字符串内所有字符出现的次数

        //再次遍历字符串，挨个去查看每一个字符在数组内出现的次数
        //第一个为一的字符串就是答案。
        for (int i = 0; i < s.length(); i++) {
            char ch = s.charAt(i);
            if(freq[ch - 'a'] == 1){
                return i;
            }
        }

      return -1;
    }

}
